It is becoming increasingly important for companies to electronically exchange information internally among their business units and externally with their customers, suppliers, and partners. This exchange of information may be driven by a desire to analyze success across global divisions, compare existing business practices among subsidiaries, extract and integrate information from customer or third-party databases, and so on. A company that can exchange information in a timely and efficient manner has a distinct competitive advantage for several reasons. For example, suppliers may give discounts to customers with whom they can exchange information electronically, or customers may only select a supplier with whom they can exchange information electronically.
The exchange of such information presents significant challenges because companies employ a wide variety of computer systems to handle their data processing needs. A single company may use many different hardware platforms, operating systems, and file formats that are incompatible and the incompatibility increases when different companies are considered. Moreover, a company's data may be stored at geographically diverse locations and may be even stored on third-party computer systems, such as those of suppliers. Because of the differences, the electronic exchange of information may be a complex task.
Traditional techniques for electronic exchange of information result in the building of newer and larger databases of information, such as data warehouses or custom applications. These traditional techniques, however, can be very costly and time-consuming. Moreover, the new databases may be inflexible and may not easily accommodate new sources or formats of data.
Another disadvantage of these traditional techniques is that users need to become familiar with the various query languages in order to retrieve the information from the databases. This disadvantage is magnified because each company may use a different database system with different query language requirements. Users would, of course, find it desirable to learn only one query language rather than having to learn many, and would find it even more desirable to submit queries without even having to learn a query language. Some databases allow users to execute queries that have been predefined. Thus, the users do not need to learn the query language. A disadvantage of such predefined queries, however, is that they may not allow for all the flexibility needed by a user.
The technology of the detailed description section is described with reference to the Extensible Markup Language (“XML”), to XML style sheets and to XML-QL. XML is a set of rules for defining semantic tags of documents. These tags identify different parts of the documents. For example, a document describing an order to be placed by a customer may include an “order” tag, a “purchase order number” tag, “stock keeping unit” (“SKU”) tags and so on. Table 1 illustrates a sample XML document.
TABLE 1 1.<order> 2.<po number>12321</po number> 3.<item> 4.<sku>55551</sku> 5.<quantity>2</quantity> 6.</item> 7.<item> 8.<sku>55552</sku> 9.<quantity>1</quantity>10.</item>11.</order>
The “order” tags (i.e., <order> and </order>) of lines 1 and 11 delimit and identify the information of the order, the “po number” tags of line 2 delimit and identify a purchase order number (i.e., “12321”), the “item” tags of lines 3 and 6 and lines 7 and 10 delimit and identify the information of each item being ordered and so on.
XML also defines document type definitions (“DTD”) for specifying the syntax of XML documents. DTD's specify a set of rules for the structure of the document by specifying the elements, attributes and entities contained in the document and their relationships to one another. For example, a DTD may specify that an order element may have one purchase order number child element and multiple item child elements. When an XML document is processed, its structure can be validated to conform with the DTD. The DTD's can be stored either in the XML document itself or in a file that is external to the XML document. In the latter case, a reference to the external file is stored in the XML document.
The Extensible Style Sheet Language (“XSL”) is a style sheet language designed specifically for use with XML documents. XSL specifies a formatting language and a transformation language. XSL documents are themselves well-formed XML documents. The XSL formatting language describes how content should be rendered when presented to a user. XSL documents contain a series of rules that are to be applied to particular patterns of XML elements. When an XSL document is applied to an XML document, the patterns of the XSL document are identified in the XML document and the formatting information associated with a pattern in the XSL document is applied to the matching pattern in the XML document. Table 2 contains an example of an XSL document that can be applied to the XML document of Table 1.
TABLE 2<xsl:stylesheetversion=“1.0”mlns:xsl=“http://www.w3.org/1999/XSL/Transform”><xsl:template match=“/*”><table border=“1”><xsl:apply-templates/></table></xsl:template><xsl:template match=“/*/po_number”><tr><td colspan=“3” class=“lensSubhead”><xsl:value-of select=“local-name( )”/>: <xsl:apply-templates/></td></tr></xsl:template><xsl:template match=“/*/item”><tr><td class=“lensSubhead”><xsl:value-of select=“local-name( )”/></td><xsl:apply-templates/></tr></xsl:template><xsl:template match=“/*/*/*”><td class=“lensBody”><xsl:value-of select=“local-name( )”/>: <xsl:apply-templates/></td></xsl:template></xsl:stylesheet>
The transformation language of XSL provides elements that define rules for how one XML document is transformed into another XML document. XSL documents include templates or patterns that are to be matched in an XML document. When a template is matched, the XSL document specifies the output for the new document. That output may be a combination of information from the XML document or information specified in the XSL document. XML, DTD's and XSL are described in the book entitled “XML Bible,” written by Elliotte Rusty Harord, and published by IDG Books Worldwide, Inc. in 1999 and which is hereby incorporated by reference.
A query language is being defined to support XML. The query language is known as XML-QL. The document entitled “XML-QL: A Query Language for XML,” by Deutsch et al, submitted to the World Wide Web Consortium Aug. 19, 1998, is published by the World Wide Web Consortium (“W3C”) and is hereby incorporated by reference. The XML-QL is being defined to specifically support query data stored in the XML format.